package com.note.app.dto.ai;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * AI辅助编辑笔记请求DTO
 */
@Data
@Schema(description = "AI辅助编辑笔记请求")
public class AIEditNoteRequestDTO {
    
    /**
     * 笔记ID
     */
    @Schema(description = "笔记ID", example = "1", required = true)
    private Long noteId;
    
    /**
     * AI模式
     */
    @Schema(description = "AI模式", example = "SUMMARIZE", required = true)
    private String mode;
    
    /**
     * 用户提示词（可选）
     */
    @Schema(description = "用户提示词", example = "总结这篇笔记的要点")
    private String prompt;
    
    /**
     * 语言（可选）
     */
    @Schema(description = "语言", example = "zh", defaultValue = "zh")
    private String language = "zh";
    
    /**
     * 额外参数（JSON格式字符串，可选）
     */
    @Schema(description = "额外参数", example = "{\"style\":\"concise\",\"format\":\"bullet\"}")
    private String extraParams;
    
    /**
     * 是否包含笔记内容（可选）
     * 如果为false，将通过noteId获取笔记内容
     */
    @Schema(description = "是否包含笔记内容", example = "false", defaultValue = "false")
    private Boolean includeContent = false;
    
    /**
     * 笔记内容（可选）
     * 当includeContent为true时使用
     */
    @Schema(description = "笔记内容", example = "这是一篇关于Spring Boot的入门教程...")
    private String content;
    
    /**
     * 笔记标题（可选）
     */
    @Schema(description = "笔记标题", example = "Spring Boot入门教程")
    private String title;
} 